different encoding techniques in machine learning